from basic.EventScript import *
from framework.syntacticSugar.EventEntiys import EventEntiys
from . import methods

print("[jail-mod 更好的监狱系统] 加载中...")


def event_bus(event_entiys: EventEntiys) -> dict:
    selfname = event_entiys.self.fields.name
    involername = event_entiys.involver.fields.name

    return {
        "囚禁": {
            "script": [
                DefaultScript("aside", f"{selfname} 将 {involername} 带入了监狱"),
                # DefaultScript(involername, event_entiys.involver.voice["监狱"]),
                # TODO 角色的语音系统尚未完成
                DefaultScript("aside", f"不知道接下来等待{involername}的是怎样的惩罚..."),
                EffectScript("关押角色", methods.close_chart, event_entiys),
                ChooseScript({
                    "aside": "我应该把他关在...",
                    "关进黑压压的地牢里，让他受尽惩罚!": ["地牢"],
                    "网开一面，让他就和普通的犯人关在一起吧": ["普通"]
                }),
                ValidateScript(
                    Condition=["地牢"],
                    Filter=MethodScript(methods.va_put_pit, event_entiys),
                    Error=[
                        DefaultScript("aside", "你无法关入该角色!")
                    ],

                    Text=[
                        DefaultScript("aside", f"果然，地牢才能这个十恶不赦的家伙尝尽苦头，关于折磨{involername}的办法，{selfname}想到了很多很多"),
                        DefaultScript(involername, "我得想办法逃离这里..."),
                        EffectScript("放入地牢", methods.put_pit, event_entiys)
                    ],
                    Else=[
                        DefaultScript('aside', f"{involername}内心窃喜，仿佛逃过了一劫，只要不是待在地牢里，他什么都愿意做")
                    ]

                )

            ],
            "tigger": None,  # 这是一个非回合制的触发器
        },
        "释放": {
            "script": [
                DefaultScript("aside", f"{selfname}  将 {involername} 带出了监狱"),
                DefaultScript("aside", f"{involername}虽然对此感到意外但是还是快速的离开了这里..."),
                DefaultScript("aside", f"这究竟是放虎归山还是另有所图？一切还尚未可知...")
            ],
            "tigger": None,  # 这是一个非回合制的触发器
        }
    }
